1. Field of the Invention
The present invention relates to conversion of compressed images received in JETSEND protocol to PCL (printer control language)-compatible images. Specifically, according to the invention, a compressed JETSEND image is converted to a compressed PCL raster image, without the need of decompression.
2. Description of the Related Art
JETSEND is a device-to-device communications protocol for local and wide area networks, that allows network devices to intelligently negotiate information exchange between them, without the need of involving a separate computer to negotiate the conversation. The JETSEND protocol allows the two devices to connect over a network, negotiate the best possible data type, provide device status, and exchange information, all without intervention from a user or from a third device such as a computer to negotiate the communication between the two devices. JETSEND protocol is described at length in "HP JETSEND.TM. Communications Technology, Section I: Architectural Overview; Section II: Protocol References; and Section III: E-Material Specification", Version 1.0, Hewlett-Packard Company, 1997. These documents are incorporated by reference as if set forth in full herein.
As an example, a JETSEND-enabled scanner (or other image input device such as a digital camera) can capture image information and then send the image information directly to a JETSEND-enabled printer (or other output device such as a facsimile or a projector) at a remote network location. According to the JETSEND protocol, the scanner would send information about its capabilities to the printer. Such information would include, for example, the available formats, color capabilities, bit length, and image resolution, of images that the scanner could acquire. In response, the printer would return information concerning the format in which the image information should be sent. The image information is captured by the scanner and thereafter sent directly to the printer for output. All such communications occur without the intermediary of a user or a computer such as a server to negotiate the communication, thereby enabling the scanner to communicate directly with the printer.
One problem currently being encountered with JETSEND concerns modification of legacy systems, which do not incorporate JETSEND protocol, into JETSEND-enabled systems. For example, current networked printers represent an enormous installed base of network printers that are not currently JETSEND-enabled. These networked printers communicate on a local area network through software on a network interface card (NIC), It has therefore been considered to include, within the NIC, software which communicates using the JETSEND protocol.
Even if this solution is adopted, however, additional problems remain. Specifically, according to the JETSEND protocol, image data is transmitted in a compressed format known as modified TIFF (tagged image file format). According to the modified TIFF compression, image data is compressed in a mixed format in which parts of the image data are run length encoded and other parts maintain a literal representation of uncompressed image data. The run length encoded portions include a first byte that is a control byte that specifies a repeat count, and a second byte which represents the data that will be repeated. The literal representation includes a first byte which is a control byte that specifies the byte count of data that follows, which simply follows in uncompressed image data format. (The literal representation is more efficient for small amounts of rapidly alternating data, where run length encoding would not result in any compression but rather would result in data expansion.)
On the other hand, most printers are not equipped to process modified-TIFF compressed data directly. In particular, printers operating under the page description language known as PCL require image data one scan line at a time, and cannot process image data for an entire image. However, to decompress the modified-TIFF compressed data, to thereafter separate each scan line from other scan lines, and to thereafter transmit each scan line to the printer, would require more processing time than is currently acceptable in conventional NIC's.